package com.moxiao.yfjh.module.activity.controller.admin.activityInfo.vo;

import com.alibaba.fastjson.JSONObject;
import com.moxiao.yfjh.module.activity.controller.admin.activityPackage.vo.ActivityPackageRespVO;
import com.moxiao.yfjh.module.activity.controller.app.vo.ActivityMemberVO;
import com.moxiao.yfjh.module.activity.controller.app.vo.AppVerificationMeltVo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;

@Schema(description = "管理后台 - 相亲活动信息 Response VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ActivityInfoRespVO extends ActivityInfoBaseVO {

    @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "28772")
    private Long id;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime createTime;

    @Schema(description = "套餐商品列表")
    private List<ActivityPackageRespVO> packageProductRespVOList;

    @Schema(description = "套餐类型名称")
    private String productTypeName;

    @Schema(description = "已报名男人数")
    private int registeredMenNum;

    @Schema(description = "已报名女人数")
    private int registeredWomenNum;

    @Schema(description = "已选择参加活动的男人数")
    private int activityMenNum;

    @Schema(description = "已选择参加活动的女人数")
    private int activityWomenNum;

    /**
     * 男女生活动的可报名人数
     */
    @Schema(description = "男女生活动的可报名人数")
    private Integer registrationAvailable;

    @Schema(description = "是否已报名该活动")
    private Boolean isEnroll;

    @Schema(description = "是否是发起者")
    private Boolean isInitiator;

    @Schema(description = "报名人头像列表")
    private List<String> avatarList;
    /**
     * 应收金额
     */
    @Schema(description = "应收金额")
    private BigDecimal receivableAmount;
    /**
     * 实收金额
     */
    @Schema(description = "实收金额")
    private BigDecimal actualAmount;
    /**
     * 成本总价
     */
    @Schema(description = "成本总价")
    private BigDecimal costTotal;

    /**
     * 个人活动负责人信息
     */
    private ActivityMemberVO activityMemberVO;

    @Schema(description = "状态名称")
    private String statusName;

    @Schema(description = "是否实名")
    private Integer haveNameAuth;
    /**
     * 核销记录
     */
    @Schema(description = "核销记录")
    private List<AppVerificationMeltVo> verificRecordsList = new ArrayList<>();


    @Schema(description = "活动支付费用")
    private String payAmount;


    @Schema(description = "商家地址")
    private String address;

    @Schema(description = "报名人头像性别被选中列表")
    private List<JSONObject> enrollAvatarAgeSelectedList;
    /**
     * app端的活动状态
     */
    private Integer appStatus;
    /**
     * app端的活动名称
     */
    private String appStatusName;

}
